Ekstreemprogrammerimine on tarkvaraarenduse metoodika, mis on mõeldud parandama tarkvara kvaliteeti ja vastavust kliendi muutuvate vajadustele
Koodi kirjutamine - kood on alati selge ja lühike ning seda ei saa tõlgendada mitmel viisil
Testimine - aitab vähendada vigu. Üksustestid teevad kindlaks, kas antud funktsioonid töötavad nagu on mõeldud.
Kasutuselevõtu testid kontrollivad, kas nõuded, mis on kliendi poolt vastavad tegelike vajadustele.
Kuulamine - peavad kuulama mida klient soovib, et süsteem vastaks nõuetele ja täidaks seda, mida äriloogika nõuab
Disainimine - luuakse diaini struktuuri, mis organiseerib süsteemi olevat loogikat
Tagasiside - toimub tihe tagasiside kliendiga, mille tõttu arendajal on kergemini vigu parandada